iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 6
0
Modern Web

用 Python 玩 PDF,結合Django 變成一個網頁系統系列 第 6

[Day 06] 長條圖(Bar Chart)

  • 分享至 

  • xImage
  •  

今天來講長條圖,是一個常見的圖表,可以快速比較兩個以上的差異。

先建立Drawing(畫布大小),再加上長條圖,VerticalBarChart(長條圖類別)

說明
有一些參數可以設定
圖表資料的格式 兩層的List,可以放數個List,一個List 代表一個長條圖。
stokeColor: 長條圖外框框線顏色
valueAxis.valueMin: 左邊Y軸最小值
valueAxis.valueMax: 左邊Y軸最大值
valueAxis.valueStep: 左邊Y軸間隔
verticalBarChart.bars[].fillColor: 長條圖顏色,可以對每個不同的長條圖顏色
verticalBarChart.categoryAxis.categoryNames: X軸顯示名稱

還有其他屬性,可以查官方文件。

程式碼

from reportlab.lib import colors
from reportlab.platypus import SimpleDocTemplate

from reportlab.graphics.shapes import Drawing
from reportlab.graphics.charts.barcharts import VerticalBarChart

drawing = Drawing(200, 100)
dataList = [
    [10, 20, 30, 40, 50, 60, 70, 80],
    [70, 6, 7, 58, 47, 65, 21, 63],
]

verticalBarChart = VerticalBarChart()
verticalBarChart.data = dataList
verticalBarChart.strokeColor = colors.black
verticalBarChart.valueAxis.valueMin = 0
verticalBarChart.valueAxis.valueMax = 100
verticalBarChart.valueAxis.valueStep = 10

verticalBarChart.bars[0].fillColor = colors.lightblue
verticalBarChart.bars[1].fillColor = colors.lightgreen
categoryNames = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
verticalBarChart.categoryAxis.categoryNames = categoryNames
drawing.add(verticalBarChart)

fileName = "example.pdf"
pdfTemplate = SimpleDocTemplate(fileName)
story = []
story.append(drawing)
pdfTemplate.build(story)

結果


參考資料:

如果有任何寫得不好的地方,請跟我說,謝謝。


上一篇
[Day 05] 表格(Table)
下一篇
[Day 07] 折線圖(Line Chart)
系列文
用 Python 玩 PDF,結合Django 變成一個網頁系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言